/public/Tools/Python Scripts/texx/


Name Type Size Date
../ Directory
--== READ ME ==-- readme 5kb 19-Jul-2026
 
texx.bat bat 35b 04-July-2026
texx.py py 48kb 08-July-2026

--== READ ME ==--.txt

texx is a small tool for manipulating textureX files. 

It main use is for comparing texture definitions and outputting a single doomtools compatible textureX.txt file containing all unique textures between all the input files. It can also use a iwad as a filter to remove all textures that apear in the iwad.

It has other functions like converting things to doomtools textureX.txt definitions. Extracting from wads, or converting lumps exported from slade for example.

It also has a function where it can read a textureX and then look in a directory and it's subdirs for matching patch files, and copy them to a dir of your choice.

=================================================================

texx -- TEXTUREx / DEUTEX manipulation tool

Six independent modes for building and cleaning up Doom TEXTUREx
definitions and SWANTBLS switch/animation tables. Pick exactly
one mode per run.

CONVERT   (-c, --convert)
  Turn a single WAD, SLADE TEXTURES file, or DEUTEX texturex.txt
  into a clean DoomTools/DEUTEX-style text file. Use this to
  normalize one source into the text format the other modes expect.

    -c, --convert INPUT         file/WAD to convert
    -o, --output PATH           default: texturex.txt

MERGE   (-m, --merge)
  Combine several texture sources into one file of unique
  definitions -- e.g. stitching multiple community texture packs
  into a single set for a megaproject. Output is sorted
  alphabetically by texture name; patch layout/order within each
  texture is untouched. True duplicates and --filter matches are
  written out to a duplicates-<out>.txt side file for review.

    -m, --merge IN [IN...]      files to merge
    -f, --filter IN [IN...]     drop anything matching these (e.g. doom2.txt)
    --resolveDups               also write duplicates-resolved-<out>.txt with
                                true duplicates renamed uniquely (doesn't touch the
                                main output)
    -o, --output PATH           default: unique-textureX.txt

SUBTRACT   (-s, --subtract)
  Start from one base texturex.txt and strip out any definition
  identical (name + layout) to one found in the other inputs or
  --filter. Use this to pull IWAD-native textures back out of a
  texture file that accidentally included them.

    -s, --subtract BASE IN...   base file, then files to compare against
    -f, --filter IN [IN...]     additional definitions to remove
    -o, --output PATH           default: <base>-subtracted.txt

REMOVE   (-rm, --remove)
  Like --subtract, but for many files at once, each handled fully
  independently -- no merging, no renaming, no cross-file dedup.
  Use this to strip IWAD textures out of several map-specific
  texture files in one pass, keeping them as separate files.

    -rm, --remove IN [IN...]    files to clean, each processed on its own
    -f, --filter IN [IN...]     definitions to remove from every input  (required)
    -o, --output DIR            default: current directory

FIND PATCHES   (-fp, --findPatches)
  Scan a directory tree and copy out every patch graphic referenced
  by a texturex.txt. Use this to collect just the patches a texture
  set actually needs out of a much bigger resource folder.

    -fp, --findPatches TEXTUREX texture file to read patch names from
    -sd, --sourcedir DIR        directory to scan recursively  (required)
    -o, --output DIR            default: <input>-patches

ANIMATION MERGE   (-a, --animation, --animations)
  Merge SWANTBLS/defswani switch + animation definition files
  ([SWITCHES]/[FLATS]/[TEXTURES]) into one --default file that is
  reproduced 100% unchanged. New switches/animations from the
  other inputs are appended; anything that conflicts with the
  default, or between two inputs, is skipped and written to a
  -conflicts.txt side file for manual review instead.

    -a, --animation IN [IN...]  defswani files to merge in
    --default FILE              base file, kept 100% unchanged  (required)
    -o, --output PATH           default: merged-defswani.txt

NOTES
  Inputs are auto-detected by content, not extension: WAD files
  (TEXTURE1/TEXTURE2 + PNAMES), SLADE TEXTURES .txt, or DoomTools/
  DEUTEX .txt. --subtract's base and --findPatches's input must be
  DoomTools .txt specifically.

  Filter semantics (--merge/--subtract/--remove): a definition
  identical in name AND layout to a filter entry is dropped; a
  definition with the same name but a DIFFERENT layout is kept
  under its original name (stock-texture replacement).

  Every output enforces AASTINKY (the null texture,
  index 0) as the first entry -- moved to the front if present,
  or synthesized and inserted if missing entirely. (Not applied
  to --merge's duplicates-*.txt diagnostic side files.)

EXAMPLES
  texx -c mywad.wad
  texx -c slade-export.txt -o texture1.txt
  texx -m resource.wad map01.wad -f doom2.wad
  texx -m 32in24.txt jimmytex.txt -f doom2.txt --resolveDups
  texx -s mytex.txt other.wad -f doom2.wad
  texx -rm texture01.txt texture02.txt -f doom2-textures.txt
  texx -fp texturex.txt -sd "C:/patches" -o picked
  texx -a 32in24-defswani.txt jimmytex-defswani.txt --default doom2-defswani.txt